#ifndef PCLCLOUD_H
#define PCLCLOUD_H

// Point Cloud Library
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>

typedef pcl::PointXYZRGBA PointT;
typedef pcl::PointCloud<PointT> PointCloudT;

#pragma once
class pclCloud
{
public:
	pclCloud();
	~pclCloud();

public:
	PointCloudT::Ptr  m_cloud;

public:
	PointCloudT::Ptr loadFile(QString fileName);
	void saveFile(QString fileName);
	void rotate(pcl::PointCloud<pcl::PointXYZRGBA>::Ptr dat, float angle);
	void rotate(
		pcl::PointCloud<pcl::PointXYZRGBA>::Ptr src,
		pcl::PointCloud<pcl::PointXYZRGBA>::Ptr dst,
		float angle);
	int normalize(PointCloudT::Ptr cloud);
	void enable();
	void disable();
	bool isEnable();

private:
	double myMax(double x, double y, double z);
	bool optDisable;
};

#endif //PCLCLOUD_H